Monitor and predict Wi-Fi utilization patterns for dynamic optimization of the operating parameters of nearby ENBS using the same unlicensed spectrum

ABSTRACT

A method by one or more network devices for determining parameter values for a base station of a cellular network operating in a wireless band that is shared with one or more wireless access points. The parameter values are determined to optimize network performance in a manner that allows for fair coexistence between the base station and the one or more wireless access points. The method includes determining, using a machine learning system, parameter values for the base station based on proximity information and activity information for the one or more wireless access points, causing the base station to be configured with the parameter values, determining a measure of how configuring the base station with the parameter values affected network performance based on comparing the level of network performance before and after the base station was configured with the parameter values, and training the machine learning system using the measure.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.16/075,378, which is the national stage of International Application No.PCT/IB2016/050618, filed Feb. 5, 2016, which are hereby incorporated byreference.

FIELD

Embodiments of the invention relate to the field of networkoptimization, and more specifically, to optimizing parameters settingsof base stations that operate in an unlicensed spectrum.

BACKGROUND

Wi-Fi (e.g., based on Institute of Electrical and Electronics Engineers(IEEE) 802.11 standards) and other access technologies such as Bluetooth(e.g., based on IEEE 802.15.1 standards) and ZigBee (e.g., based on IEEE802.15.4 standards) use the Industrial, Scientific, and Medical band(2.4 GHz ISM band) as well as the Unlicensed National InformationInfrastructure band (5 GHz U-NII band). These bands are known as“unlicensed” or “licensed-exempt” bands.

Long Term Evolution (LTE) is a standard for wireless communication thatoperates in a licensed spectrum. LTE Unlicensed (LTE-U) (and LTE LicenseAssisted Access (LTE-LAA), which is a standardized version of LTE-U)extends LTE to operate in an unlicensed spectrum such as the 5 GHz U-NIIband. The goal of LTE-U and LTE-LAA is to offer better coverage andhigher data rates compared to those of standard LTE in order to provideenhanced broadband experience for end users.

LTE-U and LTE-LAA technologies use the Carrier Aggregation (CA)technique in LTE-Advanced (LTE-A) to support transmission and receptionover multiple component carriers (e.g., channels) in parallel. Theunlicensed bands mentioned above (e.g., 5 GHz U-NII band) werepreviously not suitable for access technologies like LTE. However, withtechniques such as CA and Supplemental Downlink (SDL), LTE has beenextended to LTE-U/LAA and can now use the unlicensed spectrum. Thisextension is designed to increase spectral efficiency and hence thecapacity of the LTE system. However, this extension may also interferewith the operation of other access technologies, such as Wi-Fi, in theunlicensed bands. A challenge for LTE-U/LAA is to ensure that it cancoexist on a fair basis with other access technologies in the unlicensedspectrum.

SUMMARY

A method is implemented by a network device for determining parametervalues for a base station of a cellular network. The base stationoperates in a wireless band that is shared with one or more wirelessaccess points. The parameter values are to optimize network performancewhile ensuring fair coexistence between the base station and the one ormore wireless access points. The method includes obtaining proximityinformation for the one or more wireless access points relative to thebase station, obtaining activity information for the one or morewireless access points, and determining parameter values for the basestation based on the proximity information and the activity information.

A method is implemented by a network management device for monitoringone or more wireless access points, where the one or more wirelessaccess points operate in a wireless band that is shared with a basestation of a cellular network operated by a network operator. The methodincludes instantiating one or more probes in a network operated by thenetwork operator, obtaining data collected by the one or more probes,determining proximity information for the one or more wireless accesspoints relative to the base station based on network planning data orthe data collected by the one or more probes, and determining activityinformation for the one or more wireless access points based on the datacollected by the one or more probes.

A network device is configured to determine parameter values for a basestation of a cellular network. The base station operates in a wirelessband that is shared with one or more wireless access points. Theparameter values are to optimize network performance while ensuring faircoexistence between the base station and the one or more wireless accesspoints. The network device includes a non-transitory machine-readablestorage medium having stored therein a network parameter optimizationcomponent and a processor communicatively coupled to the non-transitorymachine-readable storage medium. The processor is configured to executethe network parameter optimization component. The network parameteroptimization component is configured to obtain proximity information forthe one or more wireless access points relative to the base station,obtain activity information for the one or more wireless access points,and determine parameter values for the base station based on theproximity information and the activity information.

A network device is configured to monitor one or more wireless accesspoints, where the one or more wireless access points operate in awireless band that is shared with a base station of a cellular networkoperated by a network operator. The network device includes anon-transitory machine-readable storage medium having stored therein anetwork monitoring component and a processor communicatively coupled tothe non-transitory machine-readable storage medium. The processor isconfigured to execute the network monitoring component. The networkmonitoring component is configured to instantiate one or more probes ina network operated by the network operator, obtain data collected by theone or more probes, determine proximity information for the one or morewireless access points relative to the base station based on networkplanning data or the data collected by the one or more probes, anddetermine activity information for the one or more wireless accesspoints based on the data collected by the one or more probes.

A non-transitory machine-readable storage medium has computer codestored therein that is to be executed by a set of one or more processorsof a network device. The computer code, when executed by the networkdevice, causes the network device to perform operations for determiningparameter values for a base station of a cellular network. The basestation operates in a wireless band that is shared with one or morewireless access points. The parameter values are to optimize networkperformance while ensuring fair coexistence between the base station andthe one or more wireless access points. The operations include obtainingproximity information for the one or more wireless access pointsrelative to the base station, obtaining activity information for the oneor more wireless access points, and determining parameter values for thebase station based on the proximity information and the activityinformation.

A non-transitory machine-readable storage medium has computer codestored therein that is to be executed by a set of one or more processorsof a network device. The computer code, when executed by the networkdevice, causes the network device to perform operations for monitoringone or more wireless access points, where the one or more wirelessaccess points operate in a wireless band that is shared with a basestation of a cellular network operated by a network operator. Theoperations include instantiating one or more probes in a networkoperated by the network operator, obtaining data collected by the one ormore probes, determining proximity information for the one or morewireless access points relative to the base station based on networkplanning data or the data collected by the one or more probes, anddetermining activity information for the one or more wireless accesspoints based on the data collected by the one or more probes.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may best be understood by referring to the followingdescription and accompanying drawings that are used to illustrateembodiments of the invention. In the drawings:

FIG. 1 is a diagram of a telecommunications system in which embodimentscan be implemented, according to some embodiments.

FIG. 2 is a diagram of a proximity table of a Wireless Activity Map(WAM), according to some embodiments.

FIG. 3 is a diagram of activity tables of a WAM, according to someembodiments.

FIG. 4 is a diagram illustrating various probe deployment scenarios,according to some embodiments.

FIG. 5 is a flow diagram of a process for determining optimal parametervalues for a base station, according to some embodiments.

FIG. 6 is a block diagram of a machine learning system for determiningoptimal parameter values for a base station, according to someembodiments.

FIG. 7 is a flow diagram of a process for detecting and monitoring oneor more wireless access points, according to some embodiments.

FIG. 8A illustrates connectivity between network devices (NDs) within anexemplary network, as well as three exemplary implementations of theNDs, according to some embodiments.

FIG. 8B illustrates an exemplary way to implement a special-purposenetwork device, according to some embodiments.

FIG. 8C illustrates various exemplary ways in which virtual networkelements (VNEs) may be coupled, according to some embodiments.

FIG. 8D illustrates a network with a single network element (NE) on eachof the NDs, and within this straight forward approach contrasts atraditional distributed approach (commonly used by traditional routers)with a centralized approach for maintaining reachability and forwardinginformation (also called network control), according to someembodiments.

FIG. 8E illustrates the simple case of where each of the NDs implementsa single NE, but a centralized control plane has abstracted multiple ofthe NEs in different NDs into (to represent) a single NE in one of thevirtual network(s), according to some embodiments.

FIG. 8F illustrates a case where multiple VNEs are implemented ondifferent NDs and are coupled to each other, and where a centralizedcontrol plane has abstracted these multiple VNEs such that they appearas a single VNE within one of the virtual networks, according to someembodiments.

FIG. 9 illustrates a general purpose control plane device withcentralized control plane (CCP) software, according to some embodiments.

DESCRIPTION OF EMBODIMENTS

The following description describes methods and apparatuses fordynamically optimizing the parameter values of base stations that arecapable of operating in an unlicensed spectrum. In the followingdescription, numerous specific details such as logic implementations,opcodes, means to specify operands, resourcepartitioning/sharing/duplication implementations, types andinterrelationships of system components, and logicpartitioning/integration choices are set forth in order to provide amore thorough understanding of the present invention. It will beappreciated, however, by one skilled in the art that the invention maybe practiced without such specific details. In other instances, controlstructures, gate level circuits and full software instruction sequenceshave not been shown in detail in order not to obscure the invention.Those of ordinary skill in the art, with the included descriptions, willbe able to implement appropriate functionality without undueexperimentation.

References in the specification to “one embodiment,” “an embodiment,”“an example embodiment,” etc., indicate that the embodiment describedmay include a particular feature, structure, or characteristic, butevery embodiment may not necessarily include the particular feature,structure, or characteristic. Moreover, such phrases are not necessarilyreferring to the same embodiment. Further, when a particular feature,structure, or characteristic is described in connection with anembodiment, it is submitted that it is within the knowledge of oneskilled in the art to affect such feature, structure, or characteristicin connection with other embodiments whether or not explicitlydescribed.

Bracketed text and blocks with dashed borders (e.g., large dashes, smalldashes, dot-dash, and dots) may be used herein to illustrate optionaloperations that add additional features to embodiments of the invention.However, such notation should not be taken to mean that these are theonly options or optional operations, and/or that blocks with solidborders are not optional in certain embodiments of the invention.

In the following description and claims, the terms “coupled” and“connected,” along with their derivatives, may be used. It should beunderstood that these terms are not intended as synonyms for each other.“Coupled” is used to indicate that two or more elements, which may ormay not be in direct physical or electrical contact with each other,co-operate or interact with each other. “Connected” is used to indicatethe establishment of communication between two or more elements that arecoupled with each other.

An electronic device stores and transmits (internally and/or with otherelectronic devices over a network) code (which is composed of softwareinstructions and which is sometimes referred to as computer program codeor a computer program) and/or data using machine-readable media (alsocalled computer-readable media), such as machine-readable storage media(e.g., magnetic disks, optical disks, read only memory (ROM), flashmemory devices, phase change memory) and machine-readable transmissionmedia (also called a carrier) (e.g., electrical, optical, radio,acoustical or other form of propagated signals—such as carrier waves,infrared signals). Thus, an electronic device (e.g., a computer)includes hardware and software, such as a set of one or more processorscoupled to one or more machine-readable storage media to store code forexecution on the set of processors and/or to store data. For instance,an electronic device may include non-volatile memory containing the codesince the non-volatile memory can persist code/data even when theelectronic device is turned off (when power is removed), and while theelectronic device is turned on that part of the code that is to beexecuted by the processor(s) of that electronic device is typicallycopied from the slower non-volatile memory into volatile memory (e.g.,dynamic random access memory (DRAM), static random access memory (SRAM))of that electronic device. Typical electronic devices also include a setor one or more physical network interface(s) to establish networkconnections (to transmit and/or receive code and/or data usingpropagating signals) with other electronic devices. One or more parts ofan embodiment of the invention may be implemented using differentcombinations of software, firmware, and/or hardware.

A network device (ND) is an electronic device that communicativelyinterconnects other electronic devices on the network (e.g., othernetwork devices, end-user devices). Some network devices are “multipleservices network devices” that provide support for multiple networkingfunctions (e.g., routing, bridging, switching, Layer 2 aggregation,session border control, Quality of Service, and/or subscribermanagement), and/or provide support for multiple application services(e.g., data, voice, and video).

Long Term Evolution in unlicensed spectrum (LTE-U) (and LTE LicenseAssisted Access (LTE-LAA), which is a standardized version of LTE-U) isa proposal for the use of LTE radio communications technology in anunlicensed spectrum, such as the 5 GHz band used by Wi-Fi. A challengefor LTE-U/LAA is to ensure that it can coexist on a fair basis withother access technologies in the unlicensed spectrum.

LTE-U/LAA may rely on channel selection techniques in order to assurefair coexistence with Wi-Fi. In channel selection, the base station(e.g., a small cell base station such as an LTE-U or LTE-LAA evolvedNode B (eNB)) chooses the cleanest channel based on sensing the RadioFrequency (RF) environment. If a clean channel is available, the basestation transmits on that channel. When a clean channel is notavailable, the base station may rely on other techniques such asCarrier-Sensing Adaptive Transmission (CSAT) or Listen Before Talk (LBT)techniques to fairly share the channel. It should be noted that even ifa channel is clean, CSAT/LBT techniques may still be used (withdifferent parameter values).

CSAT uses an adaptive duty cycle approach for transmission. In CSAT, thebase station senses the level of interference on a channel during offperiods, and modifies the ON time of transmission per cycle based on thesensed level of interference. During the OFF periods, the base stationonly transmits LTE-U Discovery Signals (LDS) to help user equipment (UE)to synchronize with the LTE-U cell. CSAT is already deployed in someLTE-U systems and is accepted in the United States, South Korea, India,China, and other parts of the world. However, network operators in thesecountries are facing some push-back with regard the deployment ofLTE-U/LAA technology due to concerns about the potential impact ofLTE-U/LAA technology on Wi-Fi performance. Also, some studies indicatethat CSAT may hinder Wi-Fi quality more than initially thought.

Various CSAT parameter values can be modified to adjust CSAT operation.Some examples of CSAT parameters include a maximum channel usageparameter, a minimum channel usage parameter, a maximum continual ontime parameter, and an occupancy threshold parameter. The maximumchannel usage parameter defines the maximum channel usage. The minimumchannel usage parameter defines the minimum channel usage. The maximumcontinual on time parameter defines the duty cycle length for CSAT. Theoccupancy threshold parameter defines a threshold energy level abovewhich a detected energy level must exceed before a channel is classifiedas being occupied.

LBT checks for the presence of other occupants in a channel beforetransmitting. In LBT, a base station that wants to transmit in a channelhas to first detect the energy level of the channel to determine thelevel of interference. If the detected energy level of the channel isbelow a threshold value, then the base station can transmit in thatchannel. LBT is a technique that is commonly used in Wi-Fi. Wi-Fi uses aMedia Access Control (MAC) protocol called Carrier Sense Multiple Accesswith Collision Avoidance (CSMA/CA). With CSMA/CA, a node that wishes totransmit performs a Clear Channel Assessment (CCA) to determine if achannel is busy or idle. If the node senses that the channel is busy, itperforms random back-off. Optionally, a node may exchangeRequest-to-Send (RTS) and Clear-to-Send (CTS) messages with other nodesto avoid hidden station problems. Wi-Fi defines a fixed energy detectionthreshold value that is used to detect the start of a valid Wi-Fi signal(called signal detect CCA) or to detect any signal (called energy detectCCA). LTE-U/LAA may adopt similar LBT techniques to ensure faircoexistence with Wi-Fi.

Various LBT parameter values can be modified to adjust LBT operation.Some examples of LBT parameters include an energy detection thresholdparameter (for CCA), a multi-carrier operation parameter, a maximumlength Transmit Opportunity (TXOP) parameter, a minimum contentionwindow size parameter, and a maximum contention window size parameter.

The energy detection threshold parameter for CCA defines a thresholdenergy level above which a detected energy level must exceed before achannel is classified as being busy. The energy detection threshold forCCA should be set appropriately in order to effectively protect nearbytransmissions. Raising the energy detection threshold too high is notdesirable because this may become practically equivalent to notimplementing LBT (e.g., device will always think the channel is idle).At the same time, lowering the energy detection threshold too low mayoverprotect and lower the chances for the device to transmit. Theoptimal setting for the energy detection threshold may depend on thenetwork topology and surrounding environment.

The multi-carrier operation parameter defines settings for carrieraggregation. In LTE-A Carrier Aggregation, each aggregated carrier isreferred to as a Component Carrier (CC). The simplest way to arrangeaggregation is to use contiguous CCs within the same operating frequencyband (commonly referred to as intra-band contiguous). However, this maynot always be possible due to operator frequency allocation scenarios.The value of the multi-carrier operation parameter can be adjusted touse channels during carrier aggregation that are not being used by aWi-Fi transmission.

The maximum length Transmit Opportunity (TXOP) parameter defines themaximum length of a bounded time interval during which a node can sendas many frames as possible.

The minimum contention window size parameter defines the initialcontention window size used for backoff. The maximum contention windowsize parameter defines the maximum size of the contention window. Thevalues of these parameters can be adjusted

Dynamically adjusting the values of CSAT and/or LBT parameters based onknowledge of nearby Wi-Fi access points can help improve networkperformance and to minimize interference with Wi-Fi transmissions. Forexample, adjusting the duty cycle length in CSAT may help achieve betternetwork performance and minimize interference with Wi-Fi transmissions(e.g., longer duty cycle may be used in the absence of Wi-Fitransmissions and shorter duty cycles in the presence of Wi-Fitransmissions). As another example, adjusting the energy detectionthreshold value in LBT may help achieve better network performance andminimize interference with Wi-Fi transmissions. As yet another example,adjusting the value of the maximum length TXOP parameter may helpachieve better network performance and minimize interference with Wi-Fitransmissions (e.g., a longer TXOP can be used in the absence of Wi-Fitransmissions). The optimal parameter values for CSAT and/or LBT maydepend on a variety of factors. However, existing LTE-U/LAA systems usefixed parameter values or determine the parameter values solely based onsensing the air interface. These parameter values may lead tosub-optimal network performance and cause unnecessary interference withWi-Fi transmissions.

Embodiments described herein optimize parameter values (e.g., CSATparameter values and LBT parameter values) for a base station (e.g., aneNB) based on information about nearby wireless access points (e.g.,Wi-Fi access points). The information about nearby wireless accesspoints may include proximity information for the wireless access pointsrelative to the base station and activity information for the wirelessaccess points. The proximity information may include informationregarding the distance between the base station and a given wirelessaccess point and/or an estimated level of interference between the basestation and a given wireless access point. The activity information mayinclude information regarding a predicted level of activity of a givenwireless access point at a given time/day/year and/or the traffic typetransmitted by the wireless access point along with a confidence value.The information about nearby wireless access points can be determinedbased on data collected from various probes deployed in a networkoperator's network. This information may provide a more complete pictureof the wireless access points that are nearby the base station thansolely relying on sensing the air interface. Embodiments describedherein leverage this real-time and predicted information about nearbywireless access points to configure the base station with optimalparameter values that provide good network performance, while ensuringfair coexistence with the wireless access points.

Some embodiments will be described in the context of atelecommunications system where the base stations are eNBs that employLTE-U/LAA and where the wireless access points are Wi-Fi access pointsthat employ IEEE 802.11 standards (e.g., 802.11n or 802.11ac). However,it should be understood that unless indicated otherwise, the terms “basestation” and “wireless access points” as used herein are not intended tobe specific to or otherwise be limited to any particular accesstechnology. More generally, the embodiments described herein areapplicable in an environment where the base stations share an unlicensedspectrum with the wireless access points.

FIG. 1 is a diagram of a telecommunications system in which embodimentscan be implemented, according to some embodiments. As shown, thetelecommunications system includes eNBs 110A-C, a UE 115, a core network130, Wi-Fi access points 120A-C, and a network management device 150. AneNB 110 is a network device that communicates with UEs (e.g., UE 115)over an air interface (e.g., using radio communications). In oneembodiment, the eNBs employ LTE-U or LTE-LAA. Each eNB 110 maycommunicate with UEs 115 within a particular geographic area (e.g., a“small cell”). The eNBs 110A-C are connected to the core network 130 andcan facilitate communications between the UE 115 and the core network130. The core network 130 may provide connectivity to other packet datanetworks such as the Internet. In one embodiment, the core network 130is an Evolved Packet Core (EPC) network. The UE 115, eNBs 110A-C, andthe core network 130 may collectively form a cellular network (e.g., anLTE network). The cellular network (or a subset thereof) may be underthe control of a network operator (e.g., an LTE operator). Forsimplicity and clarity, the cellular network is depicted as having threeeNBs 110A-C and a single UE 115. However, it should be understood thatthe cellular network can include any number of eNBs 110 and that morethan one UE 115 can connect to the cellular network.

The Wi-Fi access points 120A-C provide connectivity to a Wireless LocalArea Network (WLAN). The Wi-Fi access points 120A-C may employ IEEE802.11 standards and typically operate in the unlicensed spectrum. TheWi-Fi access points 120A-C may or may not be under the control of thenetwork operator. Traditionally, eNBs 110 operate in a licensedspectrum. However, with the introduction of LTE-U/LAA, operation of theeNBs 110 may extend to the unlicensed spectrum occupied by Wi-Fi devices(e.g., Wi-Fi access points 120). As a result, the eNBs 110 and the Wi-Fiaccess points 120 may interfere with each other, which can impact theperformance of the network.

The network management device 150 is a network device that managesvarious aspects of the network operator's network. The networkmanagement device 150 may be under the control of the network operator.As shown, the network management device 150 includes a networkmanagement component 160, a network monitoring component 170, and anetwork parameter optimization component 180. Although the diagram showsthe various components as being implemented by a single network device(i.e., the network management device 150), in some embodiments, thefunctionality of the respective components can be distributed over oneor more network devices.

The network management component 160 is responsible for managing thecellular network. In one embodiment, the network management component160 provides an interface (e.g., Application Programming Interface(API)) for configuring the parameter values for the eNBs 110. Forexample, the network management component may provide an API forconfiguring the CSAT and LBT parameter values of the eNBs 110.

The network monitoring component 170 is responsible for monitoring thenetwork operator's network. The network monitoring component is operableto instantiate and configure probes (physical or virtual probes) in thenetwork operator's network to collect real-time data pertaining to thenetwork traffic that passes through various points of the networkoperator's network. An example of such probes is described in U.S.application Ser. No. 14/745,058 (titled, “A Method for OptimizedPlacement of Service-Chain-Monitoring Probes”), which is herebyincorporated in its entirety by reference. The network monitoringcomponent 170 may utilize a Software Defined Networking (SDN) controllerand a cloud manager to monitor various points in the network operator'snetwork. The network operator's network may include the cellularnetwork, as well as a cloud data center, a Wide Area Network (WAN), andother types of network infrastructures. In one embodiment, the networkmonitoring component 170 uses the data collected by the probes togenerate a Wireless Activity Map (WAM). A WAM may include proximityinformation for Wi-Fi access points 120 relative to eNBs 110 andactivity information for the Wi-Fi access points 120. The proximityinformation may include information about which Wi-Fi access points 120(if any) are located near a given eNB 110 (and thus might interfere withthe eNB 110). The activity information may include information regardingwhich Wi-Fi access points 120 are likely to be actively transmitting ata given point in time. The activity information may also include thetraffic type that the Wi-Fi access points 120 are likely to transmit ata given point in time (e.g., real-time traffic or non-real-timetraffic). The WAM may also include confidence levels that rate theaccuracy of the information in the WAM. The WAM may thus provide a goodpicture of the Wi-Fi access points 120 near a given eNB 110, as well thetransmission behaviors of the Wi-Fi access points 120 near the given eNB110 at a given time. The WAM is described in additional detail belowwith reference to FIGS. 2 and 3 . The network monitoring component 170may provide the WAM to the network parameter optimization component 180so that the network parameter optimization component 180 can use thisinformation to optimize the parameter values of the eNBs 110.

The network parameter optimization component 180 is responsible foroptimizing the parameter values of the eNBs 110. The network parameteroptimization component 180 is operable to obtain the proximityinformation and activity information generated by the network monitoringcomponent 170 (e.g., the WAM) and use this information to determine theoptimal parameter values for the eNBs 110. For example, the networkparameter optimization component 180 may use the WAM to determineoptimal parameter values for CSAT or LBT. The network operator maydefine what is considered optimal (e.g., based on domain expertiseand/or policy). For example, the optimal parameter values for the eNBs110 may be the parameter values that optimize a set of Key PerformanceIndicators (KPIs) defined by the network operator. The KPIs may includeperformance indicators for the network operator's fixed and/or mobilenetwork, as well as performance indicators for the network operator'sWi-Fi access points 120 and third party Wi-Fi access points 120. Thenetwork parameter optimization component 180 may provide the optimalparameter values to the network management component 160 so that thenetwork management component 160 can configure the eNBs 110 with theoptimal parameter values. The network parameter optimization component180 can periodically determine updated optimal parameter values for theeNBs 110 based on obtaining updated proximity information and activityinformation from the network monitoring component 170, and push theseparameter values to the eNBs 110 via the network management component160. Although the network parameter optimization component 180 is shownas being implemented by the network management device 150, in otherembodiments, the functionality of the network parameter optimizationcomponent 180 can be distributed across the network. For example, eacheNB 110 may implement its own instance of the network parameteroptimization component to optimize its own parameter values.

FIG. 2 is a diagram of a proximity table of a WAM, according to someembodiments. As discussed above, a WAM may include proximity informationfor Wi-Fi access points 120 relative to eNBs 110. In one embodiment, theproximity information may be expressed as a proximity table. Theproximity table includes proximity information for Wi-Fi access points120 (AP_1 to AP_W) relative to eNBs 110 (eNB_1 to eNB_B). Each row inthe proximity table represents a Wi-Fi access point 120 and each columnin the proximity table represents an eNB 110. An entry in row r andcolumn c of the proximity table indicates proximity information for theWi-Fi access point 120 represented by row r relative to the eNB 110represented by column c. An entry in the proximity table may include anestimated level of interference/proximity between the Wi-Fi access point120 and the eNB 110. In this example, the estimated level ofinterference is indicated as a value between 0 and 1, where a value of 0indicates no possible interference and a value of 1 indicates thehighest level of interference. An entry may also include an indicationof a confidence level of the accuracy of the estimated level ofinterference. In this example, the confidence level is indicated as avalue between 0 and 1, where a value of 0 indicates the lowest level ofconfidence and a value of 1 indicates the highest level of confidence.The confidence level can be determined based on how the information wasdetermined (e.g., what data was used to determine the information). Forexample, the entry corresponding to AP_3 and eNB_2 is denoted as0.3/0.6. This indicates that the estimated level of interference betweenAP_3 and eNB_2 is 0.3 (on a scale of 0 to 1) and that the confidencelevel of the accuracy of the estimated level of interference is 0.6 (ona scale of 0 to 1). Other entries of the proximity table can beinterpreted in a similar fashion.

The set of eNBs 110 to be included in the proximity table is known, asthe network operator has knowledge of the eNBs 110. For the Wi-Fi accesspoints 120, the proximity table can begin with an initial set of Wi-Fiaccess points 120 that are known to the operator (e.g., the W-Fi accesspoints 120 that were deployed by the network operator) and this set cangrow as the network operator detects the presence of other Wi-Fi accesspoints 120 that were not deployed by the network operator (e.g., via thenetwork monitoring component 170). The network operator may haveknowledge of the geographic coordinates of the Wi-Fi access points 120that it deployed, which may result in a confidence value of 1. In theexample, AP_1 and AP2 are operated by the network operator and thus theentries for these Wi-Fi access points 120 have confidence values of 1.On the other hand, AP_3 is not operated by the operator so the entriesfor this Wi-Fi access point 120 have lower confidence values. UEstatistics may also be used by the network operator to learn thepresence of nearby Wi-Fi access points.

FIG. 3 is a diagram of activity tables of a WAM, according to someembodiments. As discussed above, a WAM may include activity informationfor Wi-Fi access points 120. In one embodiment, the activity informationmay be expressed as one or more activity tables. In one embodiment, aseparate activity table is maintained per calendar day. In oneembodiment, each activity table includes activity information for Wi-Fiaccess points 120 (AP_1 to AP_W) per time of day (Time_1 to Time_t).Each row in an activity table represents a Wi-Fi access point 120 andeach column in an activity table represents a time of day. An entry inrow r and column c of the activity table indicates activity informationfor the Wi-Fi access point 120 represented by row r at the time of dayrepresented by column c. An entry in the activity table may include anindication of a predicted activity level of a given Wi-Fi access point120 at a given time of day. In this example, the predicted activitylevel is indicated in terms of the amount of bandwidth consumed by theWi-Fi access point (in Gbps) or as a yes/no value, where yes (Y)indicates that the Wi-Fi access point 120 is actively transmitting andno (N) indicates that the Wi-Fi access point 120 is not activelytransmitting. An entry may also include an indication of a traffic type.In this example, the traffic type is denoted as A1, A2, or A3, where A1indicates real-time traffic (such as Voice over Internet Protocol (VoIP)traffic), A2 indicates streaming traffic, and A3 indicates file downloadtraffic. A value of “-” indicates that the traffic type information isnot available. An entry may also include an indication of a confidencelevel of the accuracy level of the predicted activity level and/or thetraffic type. In this example, the confidence level is indicated as avalue between 0 and 1, where a value of 0 indicates the lowest level ofconfidence and a value of 1 indicates the highest level of confidence.The confidence level can be determined based on how the information wasdetermined (e.g., what data was used to determine the information). Forexample, the entry corresponding to AP_2 and Time_2 is denoted as0.1/A2/1. This indicates that the predicted activity level of AP_2 atTime_2 is 0.1 Gbps, that the traffic type is streaming traffic, and thatthe confidence level of the accuracy of the predicted activity leveland/or traffic type is 1 (on a scale of 0 to 1). Other entries of theactivity table can be interpreted in a similar fashion.

The activity table can begin with an initial set of Wi-Fi access points120 that are known to the operator (e.g., the Wi-Fi access points 120that were deployed by the network operator) and this set can grow as thenetwork operator detects the presence of other Wi-Fi access points 120that were not deployed by the network operator (e.g., via the networkmonitoring component 170). In the example, AP_1 and AP2 are operated bythe network operator and thus the entries for these Wi-Fi access pointshave confidence values of 1. On the other hand, AP_3 is not operated bythe operator so the entries for this Wi-Fi access point 120 have lowerconfidence values.

It should be noted that the WAM may include information other thanproximity information and activity information. For example, the WAM mayinclude information regarding scheduled maintenance,blacklisted/rogue/compromised Wi-Fi access points 120, futureanticipated associations due to a scheduled event, priorities as aresult of policy decision, and other information related to Wi-Fi accesspoints 120. Also, it should be noted that the arrangement of informationin the WAM is provided by way of example and not limitation. Otherembodiments may arrange the information in a different manner and/orusing different data structures.

The network monitoring component 170 may generate the WAM based onoperator data (e.g., network planning data from networkplanning/installation phase) and data collected from various probesdeployed in the network operator's network. These probes may includeprobes on eNBs 110, probes on UEs 115, probes on Wi-Fi access points120, and other types of probes (e.g., probes on customer premisesequipment (CPE) and probes on Broadband Network Gateways (BNGs)).

Probes on eNBs 110 are probes that collect data from eNBs 110. Forexample, a probe on an eNB 110 can collect LTE-U/LAA signal interferencedata logs/counters for that eNB 110 and Received Signal StrengthIndicator (RSSI) levels on Wi-Fi channels. This data can be used todetermine the presence of nearby Wi-Fi access points 120 (proximityand/or interference), as well as their transmission behavior in time(during the day, week, month, and year). In some cases it is notpossible to determine whether interference was caused by a Wi-Fi accesspoint 120 or another eNB 110. In this case, the confidence level for theinformation is lower. In one embodiment, interference caused by a Wi-Fiaccess point 120 can be distinguished from interference caused byanother eNB 110 based on detected RSSI levels. In one embodiment, theability to decode the preamble of a Wi-Fi signal can help determinewhether the interference is being caused by a Wi-Fi access point 120 oranother eNB 110.

Probes on UEs 115 are probes that collect data from UEs 115. Forexample, a probe on a UE 115 can collect information about the Wi-Fiaccess points 120 that the UE 115 has observed or has connected to. Inone embodiment, the network management component 160 collects the datafrom the eNBs 110 and/or UEs 115.

Probes on Wi-Fi access points 120 are probes that collect data fromWi-Fi access points 120. For example, a probe on a Wi-Fi access point120 may collect data transmission statistics of that Wi-Fi access point120. This data can be used to learn and predict the transmissionbehavior of the Wi-Fi access point 120 in time (during the day, week,month, and year). For example, the transmission behavior of a Wi-Fiaccess point 120 in a shopping mall with fixed opening hours can belearned using machine learning techniques (e.g., using a neuralnetwork). In this case, the transmission behavior may indicate that theWi-Fi access point 120 has higher levels of activity when the shoppingmall is open and has lower levels of activity when the shopping mall isclosed. The transmission behavior of Wi-Fi access points 120 in a home,a coffee shop, and other Wi-Fi hot spots can also be learned in asimilar fashion. In one embodiment, a probe on a Wi-Fi access point 120can collect layer 4-7 (L4-7) data transmission statistics (e.g., usingDeep Packet Inspection (DPI)) and this data can be used to determine thetype of traffic that the Wi-Fi access point 120 is transmitting overtime. For example, the data transmission statistics may be used todetermine that a given Wi-Fi access point 120 transmits 25 Mbps ofstreaming data from 7 pm to 9 pm and 1.5 Mbps real-time traffic (e.g.,video conference call traffic) from 7 am to 8 am, and the rest of thetime it does not transmit.

Other types of probes such as probes on CPEs and probes on BNGs can alsocollect data from their respective attachment points. Since datacollected by these types of probes are not directly from a Wi-Fi accesspoint 120, the network operator may need to perform further analysis todetermine if the data collected by these probes is related to a Wi-Fitransmission. As such, the confidence level for information determinedbased on such data is usually lower than when the information isdetermined based on data collected directly from a probe on a Wi-Fiaccess point 120.

FIG. 4 is a diagram illustrating various probe deployment scenarios,according to some embodiments. In the drawings, the bolded elements areoperated by the network operator and the non-bolded elements areoperated by a third party. Four different probe deployment scenarios areshown in the diagram (scenario A, B, C, and D). The probe deploymentscenarios are provided by way of example and not limitation. It shouldbe understood that probe deployment scenarios other than the scenariosdescribed herein can be used to collect data from the network. Thenetwork monitoring component may use the data collected from the probesto generate the WAM (e.g., proximity table and activity table) orsimilar information.

In scenario A, the network operator (e.g., an LTE network operator)operates and has access to the network operator's fixed network 410, theeNB (or small cell base station) 110, the Wi-Fi access point 120, andthe UE 115. The network monitoring component 170 thus has access to theprobes (e.g., physical and/or virtual probes) on the eNB 110 and theprobes on the Wi-Fi access point 120. The network monitoring component170 can use data collected from the probes on the Wi-Fi access point 120to learn the transmission behavior of Wi-Fi access point 120 (and whenthe Wi-Fi air interface is used). In one embodiment, data collected fromthe probes on the Wi-Fi access point 120 can be used to determinewhether the Wi-Fi access point's 120 performance has been affected bythe presence of interference from a non-LBT network device (e.g., an eNB110 operating in CSAT mode). This information can help improve theaccuracy of the proximity table of the WAM. The network monitoringcomponent can also leverage the data collected from the probes on theWi-Fi access point 120 to determine how the location of the Wi-Fi accesspoint 120 (which the network operator knows) impacts the interferencelevel between the Wi-Fi access point 120 and the eNB 110 (e.g., this maybe useful for the proximity table of the WAM).

In scenario B, the network operator operates and has access to thenetwork operator's fixed network 410, the eNB 110, the UE 115, and theCPE 415 (e.g., a residential gateway). However, the operator does notoperate the Wi-Fi access point 120. The network monitoring component hasaccess to the probes (e.g., physical and/or virtual probes) on the eNB110, the UE 115, and the CPE 415. The network monitoring component 170can use the data collected from the CPE 415 to determine the existenceand transmission behavior of Wi-Fi access point 120. However, not all ofthe network traffic that passes through the CPE 415 is necessarilytraffic that was transmitted by the Wi-Fi access point 120. For example,in some cases, a television that streams video content could be directlyconnected to the CPE 415. In that case, any video streaming traffic fromthe television should not be counted as belonging to the Wi-Fi accesspoint 120. As such, the network monitoring component 170 may need tofilter through the data collected from the CPE 415 to determine whichparts of the traffic belongs to the Wi-Fi access point 120. In oneembodiment, the network monitoring component 170 can inspect the MediaAccess Control (MAC) address specified in the network traffic andcompare it to the MAC address of the Wi-Fi access point 120 to determinewhether the network traffic is from the Wi-Fi access point 120. However,this does not necessarily mean that the end device used the airinterface of the Wi-Fi access point 120 (e.g., the end device could havebeen connected to the Wi-Fi access point using a wired connection). Inone embodiment, retransmission (layer 4 information) and queuingpatterns at the CPE 415 can be used to distinguish between networktraffic from a wired connection and network traffic from a wirelessconnection. For example, the presence of bandwidth bursts greater thanthe maximum bandwidth of the Wi-Fi access point 120 could suggest thatthe network traffic is from a wired connection (assuming that themaximum bandwidth of the Wi-Fi access point 120 is known). The presenceof periodic bursts of errors may suggest that the network traffic isfrom a wireless connection. In one embodiment, fingerprinting techniquescan be used to classify network traffic as being from an end user devicethat typically communicates via a Wi-Fi access point 120. Fingerprintingtechniques and location services data (e.g., Internet Protocol (IP)address location mapping databases) could be used to determine thelocation of the end user device and/or the Wi-Fi access point 120. Ifthe network operator knows the location of the CPE 415 and the eNB 110,then the location of the Wi-Fi access point 120 with respect to the eNB110 can be determined depending on the location of the Wi-Fi accesspoint 120 with respect to the CPE 415. In the case that the Wi-Fi accesspoint is not collocated with the CPE 415, correlation techniques can beused to determine the Wi-Fi access point's 120 location relative to theeNB 110.

In scenario C, the network operator operates and has access to thenetwork operator's fixed network 410, the eNB 110, and the UE 115.However, the network operator does not operate the Wi-Fi access point120 or the CPE 415. The network monitoring component has access to theprobes (e.g., physical and/or virtual probes) on the eNB 110, the probeson the UE 115, and the probes at the edge of the fixed network 410(e.g., on a BNG). In this case, the network monitoring component usesdata collected from probes at the edge of the fixed network 410 todetermine the existence and transmission behavior of Wi-Fi access point120. In one embodiment, Deep Packet Inspection (DPI) techniques (L4-7)and/or location services data (e.g., IP address location mappingdatabases) can be used to determine whether network traffic is from theWi-Fi access point 120 and to determine the location of the end userdevice. In general, this information is less accurate than informationdetermined using data collected directly from the Wi-Fi access point 120and/or data collected from the CPE 415, as correlating data collectedfrom the edge of the fixed network 410 with the Wi-Fi access point 120may not be completely accurate. However, the data collected from theedge of the fixed network 410 may still be useful to determine at a highlevel the potential existence of Wi-Fi access points 120 near a certainarea and the periods during the day when Wi-Fi access points 120 areactively transmitting.

In scenario D, the network operator operates and has access to the eNB110 and the UE 115. However, the network operator does not operate thefixed network 410, the Wi-Fi access point 120, or the CPE 415. In thiscase, the network monitoring component uses data collected from theprobes (e.g., physical and/or virtual probes) on the eNB 110 and the UE115 (e.g., eNB and UE data logs, statistics, and counters) to determinethe existence and transmission behavior of Wi-Fi access point 120. Inone embodiment, the RSSI levels detected at the eNB 110 can be used todetermine the potential existence of Wi-Fi access points 120 near theeNB 110.

In all of the above scenarios, once the network traffic is identified asbeing Wi-Fi traffic, the network monitoring component 170 can use datacollected from L4-7 probes to also determine the traffic type (e.g.,real-time or streaming traffic).

The network operator may have knowledge of the location of the networkelements (e.g., the Wi-Fi access points 120, eNB 110, CPE 415, and/orBNG) it owns and/or operates (e.g., recorded during the network planningor installation phase). In the case that the network operator operatesthe Wi-Fi access points 120, then the proximity information of the WAMcan be determined with high confidence based on the known locations ofthe Wi-Fi access points 120 and the eNBs 110. In the case that thenetwork operator does not operate the Wi-Fi access points 120, theproximity information of the WAM can be inferred based on other means,for example inspecting network traffic that passes further down thenetwork (e.g., at the CPE 415 and/or BNG). For example, DPI and/orfingerprinting techniques could be used to obtain L4-7 information aboutthe network traffic coming from the Wi-Fi access points 120 and thisinformation could be used to map the Wi-Fi access points 120 topotential geographical coordinates. In the case of moving Wi-Fi accesspoints 120 and/or eNBs 110 (e.g., in trains), machine learningtechniques may be used to learn the movement pattern of the Wi-Fi accesspoints 120 and/or eNBs 110 in order to locate them. Information aboutthe existence of Wi-Fi access points 120 can also be exchanged betweennetwork operators.

FIG. 5 is a flow diagram of a process for determining optimal parametervalues for a base station, according to some embodiments. The processdetermines parameter values for a base station of a cellular network(e.g., eNB 110 employing LTE-U or LTE-LAA), where the base stationoperates in a wireless band that is shared with one or more wirelessaccess points (e.g., Wi-Fi access point 120 employing IEEE 802.11standards). In one embodiment, the process may be implemented by anetwork device (e.g., network parameter optimization component 180 ofnetwork management device 150). The operations in this and other flowdiagrams will be described with reference to the exemplary embodimentsof the other figures. However, it should be understood that theoperations of the flow diagrams can be performed by embodiments of theinvention other than those discussed with reference to the otherfigures, and the embodiments of the invention discussed with referenceto these other figures can perform operations different than thosediscussed with reference to the flow diagrams.

The network device obtains proximity information for one or morewireless access points relative to the base station (block 510). In oneembodiment, the proximity information includes an estimated level ofinterference between the base station and a given wireless access pointfrom the one or more wireless access points. In one embodiment, theproximity information includes a confidence level of the accuracy of theestimated level of interference between the base station and the givenwireless access point. In one embodiment, the proximity informationincludes a proximity table of a WAM. In one embodiment, the proximityinformation is obtained from a network monitoring component.

The network device obtains activity information for the one or morewireless access points (block 520). In one embodiment, the activityinformation includes an indication of a predicted level of activity at agiven time of a given wireless access point from the one or morewireless access points. In one embodiment, the activity informationincludes an indication of a predicted traffic type of the given wirelessaccess point at the given time. In one embodiment, the activityinformation includes an indication of a confidence level of the accuracyof the predicted level of activity of the given wireless access point atthe given time. In one embodiment, the activity information includes oneor more activity tables of a WAM. In one embodiment, the activityinformation is obtained from a network monitoring component (e.g.,network monitoring component 170).

The network device determines the parameter values for the base stationbased on the proximity information and the activity information (block530). In one embodiment, the parameter values include CSAT parametervalues. In one embodiment, the parameter values include LBT parametervalues. In one embodiment, the LBT parameter values include an energydetection threshold value, a minimum contention window size value, and amaximum contention window size value. In one embodiment, the parametervalues for the base station are determined using machine learningtechniques (e.g., using a machine learning system). The machine learningsystem can be trained using feedback of the network performance. Forexample, in one embodiment, the network device obtains a first networkperformance indicator that indicates a level of network performancebefore the base station configuration is updated with the new parametervalues and a second network performance indicator that indicates a levelof network performance after the base station is re-configured with thenew parameter values. The network device can continually train themachine learning system in this way to learn how to determine parametervalues that optimize network performance based on the first networkperformance indicator and the second network performance indicator.

The network device may then provide the determined parameter values to anetwork management component that manages configuration of the basestation so that the network management component can configure the basestation with the parameter values (block 540). The network device maydynamically determine updated parameter values for the base station(using a similar process as described above) in response to receivingupdated proximity information or updated activity information. In thisway, the network device can periodically determine optimal parametervalues for the base station based on information about wireless accesspoints near the base station.

FIG. 6 is a block diagram of a machine learning system for determiningoptimal parameter values for a base station, according to someembodiments. The machine learning system 600 takes proximity information(for wireless access points relative to the base station) and activityinformation (for the wireless access points) as input and generates basestation (e.g., eNB 110) parameters values (e.g., CSAT or LBT parametervalues) as output. The machine learning system 600 is trained todetermine the base station parameter values that optimize networkperformance. The definition of what is considered optimal networkperformance can be defined and configured by the network operator, asdesired (e.g., based on domain expertise and/or policy). In oneembodiment, the machine learning system 600 has a self-learningmechanism to learn from its past decisions. For example, a networkperformance indicator (e.g. a set of KPIs) of the network may beprovided as input to the machine learning system 600. The machinelearning system generates base station parameter values as output andthe base station is configured with these base station parameter values(e.g., via the network management component 160). After the base stationis configured with the base station parameter values, a networkperformance indicator of the network (indicating network performanceafter the base station is configured with the parameter values) isprovided as feedback to the machine learning system 600. The machinelearning system 600 may then compare the two network performanceindicators (the network performance indicator provided as input and thenetwork performance indicator provided as feedback) to determine whetherthe base station parameter values it generated improved performance ordegraded performance (and by how much). Based on this information, themachine learning system 600 can learn from its past mistakes andaccordingly adjust future outputs to optimize network performance. Inone embodiment, the machine learning system 600 is implemented as partof the network parameter optimization component 180. The machinelearning system 600 can be implemented using various types of machinelearning techniques. For example, in one embodiment, the machinelearning system 600 is implemented using neural networks.

FIG. 7 is a flow diagram of a process for detecting and monitoring oneor more wireless access points, according to some embodiments. Theprocess detects and monitors one or more wireless access points (e.g.,Wi-Fi access point 120 employing IEEE 802.11 standards), where the oneor more wireless access points operate in a wireless band that is sharedwith a base station of a cellular network (e.g., eNB 110 employing LTE-Uor LTE-LAA) operated by a network operator. In one embodiment, theprocess may be implemented by a network device (e.g., network monitoringcomponent 170 of network management device 150).

The network device instantiates one or more probes in a network operatedby the network operator (block 710). In one embodiment, the one or moreprobes include a base station probe that collects data associated with abase station operated by the network operator. In one embodiment, thedata associated with the base station includes data regarding networktraffic that passes through the base station. In one embodiment, thedata associated with the base station includes interference data perwireless band and/or interference data per wireless channel (as detectedby the base station). In one embodiment, the one or more probes includea UE probe that collects data associated with a UE 115. In oneembodiment, the data associated with the UE includes informationregarding nearby wireless access points (e.g., wireless access pointsthat the UE 115 has observed or connected to). In one embodiment, theone or more probes include a wireless access point probe that collectsdata associated with a wireless access point operated by the networkoperator. In one embodiment, the data associated with the wirelessaccess point includes data regarding network traffic that passes throughthe wireless access point. In one embodiment, the one or more probesinclude a CPE probe that collects data associated with a CPE operated bythe network operator. In one embodiment, the data associated with theCPE includes data regarding network traffic that passes through the CPE.In one embodiment, the one or more probes include a BNG probe thatcollects data associated with a BNG operated by the network operator. Inone embodiment, the data associated with the BNG includes data regardingnetwork traffic that passes through the BNG.

The network device obtains data collected by the one or more probes(block 720). The network device then determines proximity informationfor one or more wireless access points relative to the base stationbased on network planning data and/or the data collected by the one ormore probes (block 730) and determines activity information for the oneor more wireless access points based on the data collected by the one ormore probes (block 740). The network planning data is data related tothe planning/installation of the network operator's network. Forexample, in some cases, the network operator may have installed some orall of the wireless access points and thus have knowledge of thelocation (e.g., geographical coordinates) of those wireless accesspoints. The network operator may also have knowledge of the location ofthe base station. The network operator may have recorded this type ofnetwork planning data during the network planning phase or when thewireless access points were installed. In one embodiment, the proximityinformation includes an estimated level of interference between the basestation and a given wireless access point from the one or more wirelessaccess points. In one embodiment, the proximity information includes aconfidence level of the accuracy of the estimated level of interferencebetween the base station and the given wireless access point. In oneembodiment, the proximity information includes a proximity table of aWAM. In one embodiment, the activity information includes an indicationof a predicted level of activity of a given wireless access point fromthe one or more wireless access points at a given time. In oneembodiment, the activity information includes an indication of apredicted traffic type of the given wireless access point at the giventime. In one embodiment, the activity information includes an indicationof a confidence level of the accuracy of the predicted level of activityof the given wireless access point at the given time. In one embodiment,the activity information includes one or more activity tables of a WAM.The proximity information and the activity information can be determinedbased on any of the techniques described above.

The network device may then provide the proximity information and theactivity information to a network optimization component, where thenetwork optimization component is to determine parameter values for thebase station that optimizes network performance while ensuring faircoexistence between the base station and the one or more wireless accesspoints (block 750).

FIG. 8A illustrates connectivity between network devices (NDs) within anexemplary network, as well as three exemplary implementations of theNDs, according to some embodiments of the invention. FIG. 8A shows NDs800A-H, and their connectivity by way of lines between 800A-800B,800B-800C, 800C-800D, 800D-800E, 800E-800F, 800F-800G, and 800A-800G, aswell as between 800H and each of 800A, 800C, 800D, and 800G. These NDsare physical devices, and the connectivity between these NDs can bewireless or wired (often referred to as a link). An additional lineextending from NDs 800A, 800E, and 800F illustrates that these NDs actas ingress and egress points for the network (and thus, these NDs aresometimes referred to as edge NDs; while the other NDs may be calledcore NDs).

Two of the exemplary ND implementations in FIG. 8A are: 1) aspecial-purpose network device 802 that uses custom application—specificintegrated—circuits (ASICs) and a special-purpose operating system (OS);and 2) a general purpose network device 804 that uses commonoff-the-shelf (COTS) processors and a standard OS.

The special-purpose network device 802 includes networking hardware 810comprising compute resource(s) 812 (which typically include a set of oneor more processors), forwarding resource(s) 814 (which typically includeone or more ASICs and/or network processors), and physical networkinterfaces (NIs) 816 (sometimes called physical ports), as well asnon-transitory machine readable storage media 818 having stored thereinnetworking software 820. A physical NI is hardware in a ND through whicha network connection (e.g., wirelessly through a wireless networkinterface controller (WNIC) or through plugging in a cable to a physicalport connected to a network interface controller (NIC)) is made, such asthose shown by the connectivity between NDs 800A-H. During operation,the networking software 820 may be executed by the networking hardware810 to instantiate a set of one or more networking software instance(s)822. Each of the networking software instance(s) 822, and that part ofthe networking hardware 810 that executes that network software instance(be it hardware dedicated to that networking software instance and/ortime slices of hardware temporally shared by that networking softwareinstance with others of the networking software instance(s) 822), form aseparate virtual network element 830A-R. Each of the virtual networkelement(s) (VNEs) 830A-R includes a control communication andconfiguration module 832A-R (sometimes referred to as a local controlmodule or control communication module) and forwarding table(s) 834A-R,such that a given virtual network element (e.g., 830A) includes thecontrol communication and configuration module (e.g., 832A), a set ofone or more forwarding table(s) (e.g., 834A), and that portion of thenetworking hardware 810 that executes the virtual network element (e.g.,830A).

Software 820 can include code such as network parameter optimizationcomponent 825 and network monitoring component 827, which when executedby networking hardware 810, causes the special-purpose network device802 to perform operations of one or more embodiments of the presentinvention as part networking software instances 822 (network parameteroptimization instance 835A and network monitoring instance 837A). Forexample, network parameter optimization component 825 may be executed toperform one or more of the operations of network parameter optimizationcomponent 180 and network monitoring component 827 may be executed toperform one or more of the operations of network monitoring component170.

The special-purpose network device 802 is often physically and/orlogically considered to include: 1) a ND control plane 824 (sometimesreferred to as a control plane) comprising the compute resource(s) 812that execute the control communication and configuration module(s)832A-R; and 2) a ND forwarding plane 826 (sometimes referred to as aforwarding plane, a data plane, or a media plane) comprising theforwarding resource(s) 814 that utilize the forwarding table(s) 834A-Rand the physical NIs 816. By way of example, where the ND is a router(or is implementing routing functionality), the ND control plane 824(the compute resource(s) 812 executing the control communication andconfiguration module(s) 832A-R) is typically responsible forparticipating in controlling how data (e.g., packets) is to be routed(e.g., the next hop for the data and the outgoing physical NI for thatdata) and storing that routing information in the forwarding table(s)834A-R, and the ND forwarding plane 826 is responsible for receivingthat data on the physical NIs 816 and forwarding that data out theappropriate ones of the physical NIs 816 based on the forwardingtable(s) 834A-R.

FIG. 8B illustrates an exemplary way to implement the special-purposenetwork device 802 according to some embodiments of the invention. FIG.8B shows a special-purpose network device including cards 838 (typicallyhot pluggable). While in some embodiments the cards 838 are of two types(one or more that operate as the ND forwarding plane 826 (sometimescalled line cards), and one or more that operate to implement the NDcontrol plane 824 (sometimes called control cards)), alternativeembodiments may combine functionality onto a single card and/or includeadditional card types (e.g., one additional type of card is called aservice card, resource card, or multi-application card). A service cardcan provide specialized processing (e.g., Layer 4 to Layer 7 services(e.g., firewall, Internet Protocol Security (IPsec), Secure SocketsLayer (SSL)/Transport Layer Security (TLS), Intrusion Detection System(IDS), peer-to-peer (P2P), Voice over IP (VoIP) Session BorderController, Mobile Wireless Gateways (Gateway General Packet RadioService (GPRS) Support Node (GGSN), Evolved Packet Core (EPC) Gateway)).By way of example, a service card may be used to terminate IPsec tunnelsand execute the attendant authentication and encryption algorithms.These cards are coupled together through one or more interconnectmechanisms illustrated as backplane 836 (e.g., a first full meshcoupling the line cards and a second full mesh coupling all of thecards).

Returning to FIG. 8A, the general purpose network device 804 includeshardware 840 comprising a set of one or more processor(s) 842 (which areoften COTS processors) and network interface controller(s) 844 (NICs;also known as network interface cards) (which include physical NIs 846),as well as non-transitory machine readable storage media 848 havingstored therein software 850. During operation, the processor(s) 842execute the software 850 to instantiate one or more sets of one or moreapplications 864A-R. While one embodiment does not implementvirtualization, alternative embodiments may use different forms ofvirtualization. For example, in one such alternative embodiment thevirtualization layer 854 represents the kernel of an operating system(or a shim executing on a base operating system) that allows for thecreation of multiple instances 862A-R called software containers thatmay each be used to execute one (or more) of the sets of applications864A-R; where the multiple software containers (also calledvirtualization engines, virtual private servers, or jails) are userspaces (typically a virtual memory space) that are separate from eachother and separate from the kernel space in which the operating systemis run and where the set of applications running in a given user space,unless explicitly allowed, cannot access the memory of the otherprocesses. In another such alternative embodiment the virtualizationlayer 854 represents a hypervisor (sometimes referred to as a virtualmachine monitor (VMM)) or a hypervisor executing on top of a hostoperating system, and each of the sets of applications 864A-R is run ontop of a guest operating system within an instance 862A-R called avirtual machine (which may in some cases be considered a tightlyisolated form of software container) that is run on top of thehypervisor—the guest operating system and application may not know theyare running on a virtual machine as opposed to running on a “bare metal”host electronic device, or through para-virtualization the operatingsystem and/or application may be aware of the presence of virtualizationfor optimization purposes. In yet other alternative embodiments, one,some or all of the applications are implemented as unikernel(s), whichcan be generated by compiling directly with an application only alimited set of libraries (e.g., from a library operating system (LibOS)including drivers/libraries of OS services) that provide the particularOS services needed by the application. As a unikernel can be implementedto run directly on hardware 840, directly on a hypervisor (in which casethe unikernel is sometimes described as running within a LibOS virtualmachine), or in a software container, embodiments can be implementedfully with unikernels running directly on a hypervisor represented byvirtualization layer 854, unikernels running within software containersrepresented by instances 862A-R, or as a combination of unikernels andthe above-described techniques (e.g., unikernels and virtual machinesboth run directly on a hypervisor, unikernels and sets of applicationsthat are run in different software containers).

The instantiation of the one or more sets of one or more applications864A-R, as well as virtualization if implemented, are collectivelyreferred to as software instance(s) 852. Each set of applications864A-R, corresponding virtualization construct (e.g., instance 862A-R)if implemented, and that part of the hardware 840 that executes them (beit hardware dedicated to that execution and/or time slices of hardwaretemporally shared), forms a separate virtual network element(s) 860A-R.

The virtual network element(s) 860A-R perform similar functionality tothe virtual network element(s) 830A-R—e.g., similar to the controlcommunication and configuration module(s) 832A and forwarding table(s)834A (this virtualization of the hardware 840 is sometimes referred toas network function virtualization (NFV)). Thus, NFV may be used toconsolidate many network equipment types onto industry standard highvolume server hardware, physical switches, and physical storage, whichcould be located in Data centers, NDs, and customer premises equipment(CPE). While embodiments of the invention are illustrated with eachinstance 862A-R corresponding to one VNE 860A-R, alternative embodimentsmay implement this correspondence at a finer level granularity (e.g.,line card virtual machines virtualize line cards, control card virtualmachine virtualize control cards, etc.); it should be understood thatthe techniques described herein with reference to a correspondence ofinstances 862A-R to VNEs also apply to embodiments where such a finerlevel of granularity and/or unikernels are used.

In certain embodiments, the virtualization layer 854 includes a virtualswitch that provides similar forwarding services as a physical Ethernetswitch. Specifically, this virtual switch forwards traffic betweeninstances 862A-R and the NIC(s) 844, as well as optionally between theinstances 862A-R; in addition, this virtual switch may enforce networkisolation between the VNEs 860A-R that by policy are not permitted tocommunicate with each other (e.g., by honoring virtual local areanetworks (VLANs)).

Software 850 can include code such as network parameter optimizationcomponent 863 and network monitoring component 865, which when executedby processor(s) 842, cause the general purpose network device 804 toperform operations of one or more embodiments of the present inventionas part software instances 862A-R. For example, network parameteroptimization component 863 may be executed to perform one or more of theoperations of network parameter optimization component 180 and networkmonitoring component 865 may be executed to perform one or more of theoperations of network monitoring component 170.

The third exemplary ND implementation in FIG. 8A is a hybrid networkdevice 806, which includes both custom ASICs/special-purpose OS and COTSprocessors/standard OS in a single ND or a single card within an ND. Incertain embodiments of such a hybrid network device, a platform VM(i.e., a VM that that implements the functionality of thespecial-purpose network device 802) could provide forpara-virtualization to the networking hardware present in the hybridnetwork device 806.

Regardless of the above exemplary implementations of an ND, when asingle one of multiple VNEs implemented by an ND is being considered(e.g., only one of the VNEs is part of a given virtual network) or whereonly a single VNE is currently being implemented by an ND, the shortenedterm network element (NE) is sometimes used to refer to that VNE. Alsoin all of the above exemplary implementations, each of the VNEs (e.g.,VNE(s) 830A-R, VNEs 860A-R, and those in the hybrid network device 806)receives data on the physical NIs (e.g., 816, 846) and forwards thatdata out the appropriate ones of the physical NIs (e.g., 816, 846). Forexample, a VNE implementing IP router functionality forwards IP packetson the basis of some of the IP header information in the IP packet;where IP header information includes source IP address, destination IPaddress, source port, destination port (where “source port” and“destination port” refer herein to protocol ports, as opposed tophysical ports of a ND), transport protocol (e.g., user datagramprotocol (UDP), Transmission Control Protocol (TCP), and differentiatedservices (DSCP) values.

FIG. 8C illustrates various exemplary ways in which VNEs may be coupledaccording to some embodiments of the invention. FIG. 8C shows VNEs870A.1-870A.P (and optionally VNEs 870A.Q-870A.R) implemented in ND 800Aand VNE 870H.1 in ND 800H. In FIG. 8C, VNEs 870A.1-P are separate fromeach other in the sense that they can receive packets from outside ND800A and forward packets outside of ND 800A; VNE 870A.1 is coupled withVNE 870H.1, and thus they communicate packets between their respectiveNDs; VNE 870A.2-870A.3 may optionally forward packets between themselveswithout forwarding them outside of the ND 800A; and VNE 870A.P mayoptionally be the first in a chain of VNEs that includes VNE 870A.Qfollowed by VNE 870A.R (this is sometimes referred to as dynamic servicechaining, where each of the VNEs in the series of VNEs provides adifferent service—e.g., one or more layer 4-7 network services). WhileFIG. 8C illustrates various exemplary relationships between the VNEs,alternative embodiments may support other relationships (e.g.,more/fewer VNEs, more/fewer dynamic service chains, multiple differentdynamic service chains with some common VNEs and some different VNEs).

The NDs of FIG. 8A, for example, may form part of the Internet or aprivate network; and other electronic devices (not shown; such as enduser devices including workstations, laptops, netbooks, tablets, palmtops, mobile phones, smartphones, phablets, multimedia phones, VoiceOver Internet Protocol (VOIP) phones, terminals, portable media players,GPS units, wearable devices, gaming systems, set-top boxes, Internetenabled household appliances) may be coupled to the network (directly orthrough other networks such as access networks) to communicate over thenetwork (e.g., the Internet or virtual private networks (VPNs) overlaidon (e.g., tunneled through) the Internet) with each other (directly orthrough servers) and/or access content and/or services. Such contentand/or services are typically provided by one or more servers (notshown) belonging to a service/content provider or one or more end userdevices (not shown) participating in a peer-to-peer (P2P) service, andmay include, for example, public webpages (e.g., free content, storefronts, search services), private webpages (e.g., username/passwordaccessed webpages providing email services), and/or corporate networksover VPNs. For instance, end user devices may be coupled (e.g., throughcustomer premises equipment coupled to an access network (wired orwirelessly)) to edge NDs, which are coupled (e.g., through one or morecore NDs) to other edge NDs, which are coupled to electronic devicesacting as servers. However, through compute and storage virtualization,one or more of the electronic devices operating as the NDs in FIG. 8Amay also host one or more such servers (e.g., in the case of the generalpurpose network device 804, one or more of the software instances 862A-Rmay operate as servers; the same would be true for the hybrid networkdevice 806; in the case of the special-purpose network device 802, oneor more such servers could also be run on a virtualization layerexecuted by the compute resource(s) 812); in which case the servers aresaid to be co-located with the VNEs of that ND.

A virtual network is a logical abstraction of a physical network (suchas that in FIG. 8A) that provides network services (e.g., L2 and/or L3services). A virtual network can be implemented as an overlay network(sometimes referred to as a network virtualization overlay) thatprovides network services (e.g., layer 2 (L2, data link layer) and/orlayer 3 (L3, network layer) services) over an underlay network (e.g., anL3 network, such as an Internet Protocol (IP) network that uses tunnels(e.g., generic routing encapsulation (GRE), layer 2 tunneling protocol(L2TP), IPSec) to create the overlay network).

A network virtualization edge (NVE) sits at the edge of the underlaynetwork and participates in implementing the network virtualization; thenetwork-facing side of the NVE uses the underlay network to tunnelframes to and from other NVEs; the outward-facing side of the NVE sendsand receives data to and from systems outside the network. A virtualnetwork instance (VNI) is a specific instance of a virtual network on aNVE (e.g., a NE/VNE on an ND, a part of a NE/VNE on a ND where thatNE/VNE is divided into multiple VNEs through emulation); one or moreVNIs can be instantiated on an NVE (e.g., as different VNEs on an ND). Avirtual access point (VAP) is a logical connection point on the NVE forconnecting external systems to a virtual network; a VAP can be physicalor virtual ports identified through logical interface identifiers (e.g.,a VLAN ID).

Examples of network services include: 1) an Ethernet LAN emulationservice (an Ethernet-based multipoint service similar to an InternetEngineering Task Force (IETF) Multiprotocol Label Switching (MPLS) orEthernet VPN (EVPN) service) in which external systems areinterconnected across the network by a LAN environment over the underlaynetwork (e.g., an NVE provides separate L2 VNIs (virtual switchinginstances) for different such virtual networks, and L3 (e.g., IP/MPLS)tunneling encapsulation across the underlay network); and 2) avirtualized IP forwarding service (similar to IETF IP VPN (e.g., BorderGateway Protocol (BGP)/MPLS IPVPN) from a service definitionperspective) in which external systems are interconnected across thenetwork by an L3 environment over the underlay network (e.g., an NVEprovides separate L3 VNIs (forwarding and routing instances) fordifferent such virtual networks, and L3 (e.g., IP/MPLS) tunnelingencapsulation across the underlay network)). Network services may alsoinclude quality of service capabilities (e.g., traffic classificationmarking, traffic conditioning and scheduling), security capabilities(e.g., filters to protect customer premises from network—originatedattacks, to avoid malformed route announcements), and managementcapabilities (e.g., full detection and processing).

FIG. 8D illustrates a network with a single network element on each ofthe NDs of FIG. 8A, and within this straight forward approach contrastsa traditional distributed approach (commonly used by traditionalrouters) with a centralized approach for maintaining reachability andforwarding information (also called network control), according to someembodiments of the invention. Specifically, FIG. 8D illustrates networkelements (NEs) 870A-H with the same connectivity as the NDs 800A-H ofFIG. 8A.

FIG. 8D illustrates that the distributed approach 872 distributesresponsibility for generating the reachability and forwardinginformation across the NEs 870A-H; in other words, the process ofneighbor discovery and topology discovery is distributed.

For example, where the special-purpose network device 802 is used, thecontrol communication and configuration module(s) 832A-R of the NDcontrol plane 824 typically include a reachability and forwardinginformation module to implement one or more routing protocols (e.g., anexterior gateway protocol such as Border Gateway Protocol (BGP),Interior Gateway Protocol(s) (IGP) (e.g., Open Shortest Path First(OSPF), Intermediate System to Intermediate System (IS-IS), RoutingInformation Protocol (RIP), Label Distribution Protocol (LDP), ResourceReservation Protocol (RSVP) (including RSVP-Traffic Engineering (TE):Extensions to RSVP for LSP Tunnels and Generalized Multi-Protocol LabelSwitching (GMPLS) Signaling RSVP-TE)) that communicate with other NEs toexchange routes, and then selects those routes based on one or morerouting metrics. Thus, the NEs 870A-H (e.g., the compute resource(s) 812executing the control communication and configuration module(s) 832A-R)perform their responsibility for participating in controlling how data(e.g., packets) is to be routed (e.g., the next hop for the data and theoutgoing physical NI for that data) by distributively determining thereachability within the network and calculating their respectiveforwarding information. Routes and adjacencies are stored in one or morerouting structures (e.g., Routing Information Base (RIB), LabelInformation Base (LIB), one or more adjacency structures) on the NDcontrol plane 824. The ND control plane 824 programs the ND forwardingplane 826 with information (e.g., adjacency and route information) basedon the routing structure(s). For example, the ND control plane 824programs the adjacency and route information into one or more forwardingtable(s) 834A-R (e.g., Forwarding Information Base (FIB), LabelForwarding Information Base (LFIB), and one or more adjacencystructures) on the ND forwarding plane 826. For layer 2 forwarding, theND can store one or more bridging tables that are used to forward databased on the layer 2 information in that data. While the above exampleuses the special-purpose network device 802, the same distributedapproach 872 can be implemented on the general purpose network device804 and the hybrid network device 806.

FIG. 8D illustrates that a centralized approach 874 (also known assoftware defined networking (SDN)) that decouples the system that makesdecisions about where traffic is sent from the underlying systems thatforwards traffic to the selected destination. The illustratedcentralized approach 874 has the responsibility for the generation ofreachability and forwarding information in a centralized control plane876 (sometimes referred to as a SDN control module, controller, networkcontroller, OpenFlow controller, SDN controller, control plane node,network virtualization authority, or management control entity), andthus the process of neighbor discovery and topology discovery iscentralized. The centralized control plane 876 has a south boundinterface 882 with a data plane 880 (sometime referred to theinfrastructure layer, network forwarding plane, or forwarding plane(which should not be confused with a ND forwarding plane)) that includesthe NEs 870A-H (sometimes referred to as switches, forwarding elements,data plane elements, or nodes). The centralized control plane 876includes a network controller 878, which includes a centralizedreachability and forwarding information module 879 that determines thereachability within the network and distributes the forwardinginformation to the NEs 870A-H of the data plane 880 over the south boundinterface 882 (which may use the OpenFlow protocol). Thus, the networkintelligence is centralized in the centralized control plane 876executing on electronic devices that are typically separate from theNDs. In one embodiment, the network controller 878 may include a networkparameter optimization component 881 and network monitoring component883 that when executed by the network controller 878, causes the networkcontroller 878 to perform operations of one or more embodimentsdescribed herein above. For example, network parameter optimizationcomponent 881 may be executed to perform one or more of the operationsof network parameter optimization component 180 and network monitoringcomponent 883 may be executed to perform one or more of the operationsof network monitoring component 170.

For example, where the special-purpose network device 802 is used in thedata plane 880, each of the control communication and configurationmodule(s) 832A-R of the ND control plane 824 typically include a controlagent that provides the VNE side of the south bound interface 882. Inthis case, the ND control plane 824 (the compute resource(s) 812executing the control communication and configuration module(s) 832A-R)performs its responsibility for participating in controlling how data(e.g., packets) is to be routed (e.g., the next hop for the data and theoutgoing physical NI for that data) through the control agentcommunicating with the centralized control plane 876 to receive theforwarding information (and in some cases, the reachability information)from the centralized reachability and forwarding information module 879(it should be understood that in some embodiments of the invention, thecontrol communication and configuration module(s) 832A-R, in addition tocommunicating with the centralized control plane 876, may also play somerole in determining reachability and/or calculating forwardinginformation—albeit less so than in the case of a distributed approach;such embodiments are generally considered to fall under the centralizedapproach 874, but may also be considered a hybrid approach).

While the above example uses the special-purpose network device 802, thesame centralized approach 874 can be implemented with the generalpurpose network device 804 (e.g., each of the VNE 860A-R performs itsresponsibility for controlling how data (e.g., packets) is to be routed(e.g., the next hop for the data and the outgoing physical NI for thatdata) by communicating with the centralized control plane 876 to receivethe forwarding information (and in some cases, the reachabilityinformation) from the centralized reachability and forwardinginformation module 879; it should be understood that in some embodimentsof the invention, the VNEs 860A-R, in addition to communicating with thecentralized control plane 876, may also play some role in determiningreachability and/or calculating forwarding information—albeit less sothan in the case of a distributed approach) and the hybrid networkdevice 806. In fact, the use of SDN techniques can enhance the NFVtechniques typically used in the general purpose network device 804 orhybrid network device 806 implementations as NFV is able to support SDNby providing an infrastructure upon which the SDN software can be run,and NFV and SDN both aim to make use of commodity server hardware andphysical switches.

FIG. 8D also shows that the centralized control plane 876 has a northbound interface 884 to an application layer 886, in which residesapplication(s) 888. The centralized control plane 876 has the ability toform virtual networks 892 (sometimes referred to as a logical forwardingplane, network services, or overlay networks (with the NEs 870A-H of thedata plane 880 being the underlay network)) for the application(s) 888.Thus, the centralized control plane 876 maintains a global view of allNDs and configured NEs/VNEs, and it maps the virtual networks to theunderlying NDs efficiently (including maintaining these mappings as thephysical network changes either through hardware (ND, link, or NDcomponent) failure, addition, or removal).

While FIG. 8D shows the distributed approach 872 separate from thecentralized approach 874, the effort of network control may bedistributed differently or the two combined in certain embodiments ofthe invention. For example: 1) embodiments may generally use thecentralized approach (SDN) 874, but have certain functions delegated tothe NEs (e.g., the distributed approach may be used to implement one ormore of fault monitoring, performance monitoring, protection switching,and primitives for neighbor and/or topology discovery); or 2)embodiments of the invention may perform neighbor discovery and topologydiscovery via both the centralized control plane and the distributedprotocols, and the results compared to raise exceptions where they donot agree. Such embodiments are generally considered to fall under thecentralized approach 874, but may also be considered a hybrid approach.

While FIG. 8D illustrates the simple case where each of the NDs 800A-Himplements a single NE 870A-H, it should be understood that the networkcontrol approaches described with reference to FIG. 8D also work fornetworks where one or more of the NDs 800A-H implement multiple VNEs(e.g., VNEs 830A-R, VNEs 860A-R, those in the hybrid network device806). Alternatively or in addition, the network controller 878 may alsoemulate the implementation of multiple VNEs in a single ND.Specifically, instead of (or in addition to) implementing multiple VNEsin a single ND, the network controller 878 may present theimplementation of a VNE/NE in a single ND as multiple VNEs in thevirtual networks 892 (all in the same one of the virtual network(s) 892,each in different ones of the virtual network(s) 892, or somecombination). For example, the network controller 878 may cause an ND toimplement a single VNE (a NE) in the underlay network, and thenlogically divide up the resources of that NE within the centralizedcontrol plane 876 to present different VNEs in the virtual network(s)892 (where these different VNEs in the overlay networks are sharing theresources of the single VNE/NE implementation on the ND in the underlaynetwork).

On the other hand, FIGS. 8E and 8F respectively illustrate exemplaryabstractions of NEs and VNEs that the network controller 878 may presentas part of different ones of the virtual networks 892. FIG. 8Eillustrates the simple case of where each of the NDs 800A-H implements asingle NE 870A-H (see FIG. 8D), but the centralized control plane 876has abstracted multiple of the NEs in different NDs (the NEs 870A-C andG-H) into (to represent) a single NE 8701 in one of the virtualnetwork(s) 892 of FIG. 8D, according to some embodiments of theinvention. FIG. 8E shows that in this virtual network, the NE 8701 iscoupled to NE 870D and 870F, which are both still coupled to NE 870E.

FIG. 8F illustrates a case where multiple VNEs (VNE 870A.1 and VNE870H.1) are implemented on different NDs (ND 800A and ND 800H) and arecoupled to each other, and where the centralized control plane 876 hasabstracted these multiple VNEs such that they appear as a single VNE870T within one of the virtual networks 892 of FIG. 8D, according tosome embodiments of the invention. Thus, the abstraction of a NE or VNEcan span multiple NDs.

While some embodiments of the invention implement the centralizedcontrol plane 876 as a single entity (e.g., a single instance ofsoftware running on a single electronic device), alternative embodimentsmay spread the functionality across multiple entities for redundancyand/or scalability purposes (e.g., multiple instances of softwarerunning on different electronic devices).

Similar to the network device implementations, the electronic device(s)running the centralized control plane 876, and thus the networkcontroller 878 including the centralized reachability and forwardinginformation module 879, may be implemented a variety of ways (e.g., aspecial purpose device, a general-purpose (e.g., COTS) device, or hybriddevice). These electronic device(s) would similarly include computeresource(s), a set or one or more physical NICs, and a non-transitorymachine-readable storage medium having stored thereon the centralizedcontrol plane software. For instance, FIG. 9 illustrates, a generalpurpose control plane device 904 including hardware 940 comprising a setof one or more processor(s) 942 (which are often COTS processors) andnetwork interface controller(s) 944 (NICs; also known as networkinterface cards) (which include physical NIs 946), as well asnon-transitory machine readable storage media 948 having stored thereincentralized control plane (CCP) software 950, a network parameteroptimization component 951, and a network monitoring component 953.

In embodiments that use compute virtualization, the processor(s) 942typically execute software to instantiate a virtualization layer 954(e.g., in one embodiment the virtualization layer 954 represents thekernel of an operating system (or a shim executing on a base operatingsystem) that allows for the creation of multiple instances 962A-R calledsoftware containers (representing separate user spaces and also calledvirtualization engines, virtual private servers, or jails) that may eachbe used to execute a set of one or more applications; in anotherembodiment the virtualization layer 954 represents a hypervisor(sometimes referred to as a virtual machine monitor (VMM)) or ahypervisor executing on top of a host operating system, and anapplication is run on top of a guest operating system within an instance962A-R called a virtual machine (which in some cases may be considered atightly isolated form of software container) that is run by thehypervisor; in another embodiment, an application is implemented as aunikernel, which can be generated by compiling directly with anapplication only a limited set of libraries (e.g., from a libraryoperating system (LibOS) including drivers/libraries of OS services)that provide the particular OS services needed by the application, andthe unikernel can run directly on hardware 940, directly on a hypervisorrepresented by virtualization layer 954 (in which case the unikernel issometimes described as running within a LibOS virtual machine), or in asoftware container represented by one of instances 962A-R). Again, inembodiments where compute virtualization is used, during operation aninstance of the CCP software 950 (illustrated as CCP instance 976A) isexecuted (e.g., within the instance 962A) on the virtualization layer954. In embodiments where compute virtualization is not used, the CCPinstance 976A is executed, as a unikernel or on top of a host operatingsystem, on the “bare metal” general purpose control plane device 904.The instantiation of the CCP instance 976A, as well as thevirtualization layer 954 and instances 962A-R if implemented, arecollectively referred to as software instance(s) 952.

In some embodiments, the CCP instance 976A includes a network controllerinstance 978. The network controller instance 978 includes a centralizedreachability and forwarding information module instance 979 (which is amiddleware layer providing the context of the network controller 878 tothe operating system and communicating with the various NEs), and an CCPapplication layer 980 (sometimes referred to as an application layer)over the middleware layer (providing the intelligence required forvarious network operations such as protocols, network situationalawareness, and user—interfaces). At a more abstract level, this CCPapplication layer 980 within the centralized control plane 876 workswith virtual network view(s) (logical view(s) of the network) and themiddleware layer provides the conversion from the virtual networks tothe physical view.

The network parameter optimization component 951 and network monitoringcomponent 953 can be executed by hardware 940 to perform operations ofone or more embodiments of the present invention as part of softwareinstances 952 (e.g., network parameter optimization instance 981 andnetwork monitoring instance 983). For example, network parameteroptimization component 951 may be executed to perform one or more of theoperations of network parameter optimization component 180 and networkmonitoring component 953 may be executed to perform one or more of theoperations of network monitoring component 170.

The centralized control plane 876 transmits relevant messages to thedata plane 880 based on CCP application layer 980 calculations andmiddleware layer mapping for each flow. A flow may be defined as a setof packets whose headers match a given pattern of bits; in this sense,traditional IP forwarding is also flow-based forwarding where the flowsare defined by the destination IP address for example; however, in otherimplementations, the given pattern of bits used for a flow definitionmay include more fields (e.g., 10 or more) in the packet headers.Different NDs/NEs/VNEs of the data plane 880 may receive differentmessages, and thus different forwarding information. The data plane 880processes these messages and programs the appropriate flow informationand corresponding actions in the forwarding tables (sometime referred toas flow tables) of the appropriate NE/VNEs, and then the NEs/VNEs mapincoming packets to flows represented in the forwarding tables andforward packets based on the matches in the forwarding tables.

Standards such as OpenFlow define the protocols used for the messages,as well as a model for processing the packets. The model for processingpackets includes header parsing, packet classification, and makingforwarding decisions. Header parsing describes how to interpret a packetbased upon a well-known set of protocols. Some protocol fields are usedto build a match structure (or key) that will be used in packetclassification (e.g., a first key field could be a source media accesscontrol (MAC) address, and a second key field could be a destination MACaddress).

Packet classification involves executing a lookup in memory to classifythe packet by determining which entry (also referred to as a forwardingtable entry or flow entry) in the forwarding tables best matches thepacket based upon the match structure, or key, of the forwarding tableentries. It is possible that many flows represented in the forwardingtable entries can correspond/match to a packet; in this case the systemis typically configured to determine one forwarding table entry from themany according to a defined scheme (e.g., selecting a first forwardingtable entry that is matched). Forwarding table entries include both aspecific set of match criteria (a set of values or wildcards, or anindication of what portions of a packet should be compared to aparticular value/values/wildcards, as defined by the matchingcapabilities—for specific fields in the packet header, or for some otherpacket content), and a set of one or more actions for the data plane totake on receiving a matching packet. For example, an action may be topush a header onto the packet, for the packet using a particular port,flood the packet, or simply drop the packet. Thus, a forwarding tableentry for IPv4/IPv6 packets with a particular transmission controlprotocol (TCP) destination port could contain an action specifying thatthese packets should be dropped.

Making forwarding decisions and performing actions occurs, based uponthe forwarding table entry identified during packet classification, byexecuting the set of actions identified in the matched forwarding tableentry on the packet.

However, when an unknown packet (for example, a “missed packet” or a“match-miss” as used in OpenFlow parlance) arrives at the data plane880, the packet (or a subset of the packet header and content) istypically forwarded to the centralized control plane 876. Thecentralized control plane 876 will then program forwarding table entriesinto the data plane 880 to accommodate packets belonging to the flow ofthe unknown packet. Once a specific forwarding table entry has beenprogrammed into the data plane 880 by the centralized control plane 876,the next packet with matching credentials will match that forwardingtable entry and take the set of actions associated with that matchedentry.

A network interface (NI) may be physical or virtual; and in the contextof IP, an interface address is an IP address assigned to a NI, be it aphysical NI or virtual NI. A virtual NI may be associated with aphysical NI, with another virtual interface, or stand on its own (e.g.,a loopback interface, a point-to-point protocol interface). A NI(physical or virtual) may be numbered (a NI with an IP address) orunnumbered (a NI without an IP address). A loopback interface (and itsloopback address) is a specific type of virtual NI (and IP address) of aNE/VNE (physical or virtual) often used for management purposes; wheresuch an IP address is referred to as the nodal loopback address. The IPaddress(es) assigned to the NI(s) of a ND are referred to as IPaddresses of that ND; at a more granular level, the IP address(es)assigned to NI(s) assigned to a NE/VNE implemented on a ND can bereferred to as IP addresses of that NE/VNE.

Some portions of the preceding detailed descriptions have been presentedin terms of algorithms and symbolic representations of transactions ondata bits within a computer memory. These algorithmic descriptions andrepresentations are the ways used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of transactions leading to adesired result. The transactions are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, transferred, combined, compared, and otherwisemanipulated. It has proven convenient at times, principally for reasonsof common usage, to refer to these signals as bits, values, elements,symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the above discussion, itis appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or the like, refer to the action andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general-purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the required method transactions. The requiredstructure for a variety of these systems will appear from thedescription above. In addition, embodiments of the present invention arenot described with reference to any particular programming language. Itwill be appreciated that a variety of programming languages may be usedto implement the teachings of embodiments of the invention as describedherein.

An embodiment of the invention may be an article of manufacture in whicha non-transitory machine-readable medium (such as microelectronicmemory) has stored thereon instructions which program one or more dataprocessing components (generically referred to here as a “processor”) toperform the operations described above. In other embodiments, some ofthese operations might be performed by specific hardware components thatcontain hardwired logic (e.g., dedicated digital filter blocks and statemachines). Those operations might alternatively be performed by anycombination of programmed data processing components and fixed hardwiredcircuit components.

In the foregoing specification, embodiments of the invention have beendescribed with reference to specific exemplary embodiments thereof. Itwill be evident that various modifications may be made thereto withoutdeparting from the broader spirit and scope of the invention as setforth in the following claims. The specification and drawings are,accordingly, to be regarded in an illustrative sense rather than arestrictive sense.

Throughout the description, embodiments of the present invention havebeen presented through flow diagrams. It will be appreciated that theorder of transactions and transactions described in these flow diagramsare only intended for illustrative purposes and not intended as alimitation of the present invention. One having ordinary skill in theart would recognize that variations can be made to the flow diagramswithout departing from the broader spirit and scope of the invention asset forth in the following claims.

What is claimed is:
 1. A method implemented by one or more networkdevices for determining parameter values for a base station of acellular network, where the base station operates in a wireless bandthat is shared with one or more wireless access points, where theparameter values are determined to optimize network performance in amanner that allows for fair coexistence between the base station and theone or more wireless access points, the method comprising: obtainingproximity information for the one or more wireless access pointsrelative to the base station; obtaining activity information for the oneor more wireless access points; determining, using a machine learningsystem, parameter values for the base station based on the proximityinformation and the activity information; causing the base station to beconfigured with the parameter values; obtaining a first networkperformance indicator, wherein the first network performance indicatorindicates a level of network performance before the base station wasconfigured with the parameter values; obtaining a second networkperformance indicator, wherein the second network performance indicatorindicates a level of network performance after the base station wasconfigured with the parameter values; determining a measure of howconfiguring the base station with the parameter values affected networkperformance based on comparing the first network performance indicatorand the second network performance indicator; and training the machinelearning system using the measure of how configuring the base stationwith the parameter values affected network performance.
 2. The method ofclaim 1, further comprising: providing the parameter values to a networkmanagement component that manages configuration of the base station,wherein the network management component configures the base stationwith the parameter values.
 3. The method of claim 1, wherein at leastone of the one or more wireless access points is a Wi-Fi access pointthat employs Institute of Electrical and Electronics Engineers (IEEE)802.11 standards.
 4. The method of claim 1, wherein the base station isan evolved Node B (eNB) that employs Long Term Evolution Unlicensed(LTE-U) or Long Term Evolution License Assisted Access (LTE-LAA).
 5. Themethod of claim 1, wherein the parameter values include Carrier-SensingAdaptive Transmission (CSAT) parameter values.
 6. The method of claim 1,wherein the parameter values include Listen Before Talk (LBT) parametervalues.
 7. The method of claim 6, wherein the LBT parameter valuesinclude any one of an energy detection threshold value, a minimumcontention window size value, and a maximum contention window sizevalue.
 8. The method of claim 1, wherein the proximity informationincludes an indication of an estimated level of interference between thebase station and a given wireless access point from the one or morewireless access points.
 9. The method of claim 8, wherein the proximityinformation further includes an indication of a confidence level of anaccuracy of the estimated level of interference between the base stationand the given wireless access point.
 10. The method of claim 1, whereinthe activity information includes an indication of a predicted level ofactivity at a given time of a given wireless access point from the oneor more wireless access points.
 11. The method of claim 10, wherein theactivity information further includes an indication of a predictedtraffic type at the given time of the given wireless access point. 12.The method of claim 10, wherein the activity information furtherincludes an indication of a confidence level of an accuracy of thepredicted level of activity at the given time of the given wirelessaccess point.
 13. The method of claim 1, further comprising: dynamicallydetermining updated parameter values for the base station in response toobtaining updated proximity information or updated activity information.14. A network device configured to determine parameter values for a basestation of a cellular network, where the base station operates in awireless band that is shared with one or more wireless access points,where the parameter values are determined to optimize networkperformance in a manner that allows for fair coexistence between thebase station and the one or more wireless access points, the networkdevice comprising: one or more processors; and a non-transitorymachine-readable storage medium having stored therein computer code,which when executed by the one or more processors, causes the networkdevice to: obtain proximity information for the one or more wirelessaccess points relative to the base station, obtain activity informationfor the one or more wireless access points, determine, using a machinelearning system, parameter values for the base station based on theproximity information and the activity information, cause the basestation to be configured with the parameter values, obtain a firstnetwork performance indicator, wherein the first network performanceindicator indicates a level of network performance before the basestation was configured with the parameter values, obtain a secondnetwork performance indicator, wherein the second network performanceindicator indicates a level of network performance after the basestation was configured with the parameter values, determine a measure ofhow configuring the base station with the parameter values affectednetwork performance based on comparing the first network performanceindicator and the second network performance indicator, and train themachine learning system using the measure of how configuring the basestation with the parameter values affected network performance.
 15. Thenetwork device of claim 14, wherein the computer code, when executed bythe one or more processors, further causes the network device to:provide the parameter values to a network management component thatmanages configuration of the base station, wherein the networkmanagement component configures the base station with the parametervalues.
 16. A non-transitory machine-readable storage medium havingcomputer code stored therein, which when executed by one or moreprocessors of a network device, causes the network device to performoperations for determining parameter values for a base station of acellular network, where the base station operates in a wireless bandthat is shared with one or more wireless access points, where theparameter values are determined to optimize network performance in amanner that allows for fair coexistence between the base station and theone or more wireless access points, the operations comprising: obtainingproximity information for the one or more wireless access pointsrelative to the base station; obtaining activity information for the oneor more wireless access points; determining, using a machine learningsystem, parameter values for the base station based on the proximityinformation and the activity information; causing the base station to beconfigured with the parameter values; obtaining a first networkperformance indicator, wherein the first network performance indicatorindicates a level of network performance before the base station wasconfigured with the parameter values; obtaining a second networkperformance indicator, wherein the second network performance indicatorindicates a level of network performance after the base station wasconfigured with the parameter values; determining a measure of howconfiguring the base station with the parameter values affected networkperformance based on comparing the first network performance indicatorand the second network performance indicator; and training the machinelearning system using the measure of how configuring the base stationwith the parameter values affected network performance.
 17. Thenon-transitory machine-readable storage medium of claim 16, wherein theoperations further comprise: providing the parameter values to a networkmanagement component that manages configuration of the base station,wherein the network management component configures the base stationwith the parameter values.
 18. The non-transitory machine-readablestorage medium of claim 16, wherein the parameter values includeCarrier-Sensing Adaptive Transmission (CSAT) parameter values.
 19. Thenon-transitory machine-readable storage medium of claim 16, wherein theparameter values include Listen Before Talk (LBT) parameter values. 20.The non-transitory machine-readable storage medium of claim 16, whereinthe operations further comprise: dynamically determining updatedparameter values for the base station in response to obtaining updatedproximity information or updated activity information.